TSS 2.0 Enhanced System API Rust Wrapper
The tss-esapi
Rust crate provides an idiomatic interface to the TCG TSS 2.0 Enhanced System API. We expose both direct FFI bindings and abstracted versions, aimed at improved convenience of using the API.
Our end-goal is to achieve a fully Rust-native interface that offers strong safety and security guarantees. Check out our documentation for an overview of our code safety approach.
Versioning
The crate is still under development and thus the interface is not stable (despite the version number). As a rule of thumb, all versions marked alpha
are expected to be short-lived and superseded by a better, more complete interface that relies on breaking changes.
Requirements
This crate has currently only been tested with the TSS 2.0
open-source implementation.
It uses pkg-config
to find the include and library files for the tss2-esys
and tss2-tctildr
libraries. A minimum version of 2.3.3
is required for both. pkg-config
tool is needed to build this crate.
Having installed the open-source implementation libraries at /usr/local/lib
(by default), it
might happen that pkg-config
can not find them. Run the following command if that is the
case:
Minimum Supported Rust Version (MSRV)
At the moment we test (via CI) and support the following Rust compiler versions:
- On Ubuntu we test with the latest stable compiler version, as accessible through
rustup
. - On Fedora we test with the compiler version included with the Fedora 33 release.
If you need support for other versions of the compiler, get in touch with us to see what we can do!
Community channel
Come and talk to us in our Slack channel! Here is how to join the workspace.
Contributing
We would be happy for you to contribute to the tss-esapi
crate!
Please check the Contribution Guidelines
to know more about the contribution process.
License
The software is provided under Apache-2.0. Contributions to this project are accepted under the same license.